Skip to content

Use CMake features to find NumPy - #333

Open
HunterBelanger wants to merge 4 commits into
xtensor-stack:masterfrom
HunterBelanger:fix/numpy
Open

HunterBelanger wants to merge 4 commits into
xtensor-stack:masterfrom
HunterBelanger:fix/numpy

Conversation

@HunterBelanger

Copy link
Copy Markdown

The current CMake script that is used to find NumPy does not always work for me, and sometimes causes problems on the different systems I build on. Given we have recently updated the minimum CMake version and the minimum pybind11 version, these changes now use the standard CMake tools to find Python3 and NumPy, and makes the links with the standard CMake targets. I specifically use Python3 in the CMake as the indicated pybind11 version no longer supports Python 2.7.

@HunterBelanger

Copy link
Copy Markdown
Author

I know it has taken me a bit to figure out the exact linking needed for the tests, but now, the current test failures seem to be due to the test environment not having the libpython3.so available:

CMake Error at /home/runner/micromamba/envs/xtensor-python/share/cmake-4.4/Modules/FindPackageHandleStandardArgs.cmake:290 (message):
  Could NOT find Python3 (missing: Python3_LIBRARIES Development.Embed)
  (found version "3.15.0")

Looking at this link, it appears that starting with Python 3.15, the python package in conda no longer provides libpython3.so, and you must add the libpython package as well. The error message seems to support this, as it found a 3.15 interpreter, but not the dynamic library. I don't think any tests have been run on this repo since python 3.15 came out ? Because I think if the pipeline on master were to be re-run, you would find that tests are broken due to this issue. To fix this, I am going to just specify python and libpython as dependencies in environment-dev.yml to try and fix the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant